Навигационное меню для сайта

Чтобы представить некое множество страниц в виде сайта, необходимо каждый отдельный текст размеченный по методологии markvan, конвертировать в html. А в каждой html-странице разместить навигационное меню (перечень ссылок на все страницы сайта).

Подход I. Создание меню по файловой структуре.

Если ваша структура файлов и папок отражает структуру и иерархию произведений в соответствии с рекомендациями, то можно программно построить меню для вашего сайта.

При таком подходе вы не будете тратить своё время на формирование меню (и меньше вероятность оставить старые несуществующие ссылки в процессе изменений). Минус в том, что вы не можете задать url-адреса страниц, они будут формироваться из названий папок и файлов.

КОНЕЦ


Подход II. Явное задание меню.

Это альтернативный, пока не поддерживаемый вариант создания сайта через формирование меню.

Если мы хотим хранить свои файлы произвольным образом, то для формирования меню потребуется перечислить страницы необходимые нам на сайте.

Общая схема представления навигационного меню

Название пункта меню, разделительный символ | часть URL этой страницы, занк ссылки |~ ссылка на текст или(и) папку с текстами

Путь указывается относительно папки в которой лежат исходные текстовые файлы.

Пример меню
home_page: home.text
menu: {
О нас | about |~ О нас.text
О заточке | sharpening |~ zato.text
Каталог ножей | catalog |~ Весь каталог |~ описание каталога.text
 - Кухонные | kitchen |~ Весь каталог/Кухня/О кухонниках.text
 - - Стальные | steel |~ Весь каталог/Кухня/Стальные
 - - Керамические | ceramic |~ Весь каталог/Кухня/Керамические/Плюсы керамики.text |~ catalog/kitchen/steel
 - Складные | folding |~ Весь каталог/Кухня/Складники
}

Пункты навигации могут указывать как на обычные текстовые страницы на сайте, так и на списки страниц какого-либо однородного содержимого. Например тексты песен или описания товаров. При этом, ссылок может быть несколько: одна на каталог, другая на текстовое описание каталога.

Эту информацию необходимо разместить в текстовом файлике с расширением .json .json5 .yaml ??

HTML файлы и папки будут создаваться исходя из предоставленной навигационной структуры.